// ActionScript file

			import com.sodimac.v2s.events.cargarInfoPOEvent;
			import mx.binding.utils.ChangeWatcher;
			import com.sodimac.util.commons.Session;
			import com.sodimac.v2s.vo.SesionVO;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;

			import mx.events.ItemClickEvent;
			import mx.events.AdvancedDataGridEvent;
			import mx.events.CollectionEvent;
			import mx.events.CloseEvent;
			 
			import mx.controls.TextInput;
			import mx.controls.DateField;
			import mx.controls.NumericStepper;    
			import mx.controls.ButtonLabelPlacement;
			
			import mx.managers.PopUpManager;	
			import mx.collections.ArrayCollection;
			import mx.formatters.CurrencyFormatter;
			
			import com.sodimac.v2s.view.*;
			import com.sodimac.v2s.vo.InfoSfpVO;
			import com.sodimac.util.commons.Resources;
			import com.sodimac.v2s.events.cargarInfoSfpEvent;
			import com.sodimac.v2s.events.cargarProductosEvent;
			import com.sodimac.v2s.events.grabarPedidoPaisEvent;
			import com.sodimac.v2s.view.components.ventana_RechazarPropuesta;				
			import com.sodimac.v2s.model.ComprasModelLocator;
			import com.sodimac.util.alerts.alert;
			import com.sodimac.util.commons.EstadosBPM;
			import com.sodimac.util.commons.UtilString;
			

			/* datos de pantalla */        			
			[Bindable] public var infoSfpVo:InfoSfpVO = new InfoSfpVO();
			[Bindable] public var uploadURL: String;
			[Bindable] public var downloadURL: String;
			[Bindable] public var filePO: String;					
			[Bindable] public var existeOC: String;	
		
			[Bindable] public var codPais: String;
			[Bindable] public var empresaId: String;
			[Bindable] public var nombrePais: String;
			[Bindable] public var pedidoCorpId: Number;
			[Bindable] public var ordenCompraId: String;
			[Bindable] public var purchOrderId: String;
			[Bindable] public var formaPago: String;
			[Bindable] public var paises: XMLList;
			[Bindable] public var reporteURL: String;
			
			[Bindable] private var modelo: ComprasModelLocator = ComprasModelLocator.getInstance();
			
			private var cwOC:ChangeWatcher; 
			private var cwArchivo:ChangeWatcher; 
			private var cwPOUpload:ChangeWatcher;   //existe archivo re-call
			
			
			private function onInit():void
			{
				trace("____"+  this.name + " -->  onInit.");
			
				//Escuchar cambios en la propiedad source de dg_corp 
				cwArchivo = ChangeWatcher.watch(ComprasModelLocator.getInstance(),'existeArchivoPO',onChange);
				cwOC = ChangeWatcher.watch(ComprasModelLocator.getInstance(),'existeOC',onChangeOC);
				
				initUpload();
			}
			
			
  			private function onChange(e:Event):void
			{
			    
			    trace(" ____"+  this.name + " -->  onChange.");
				//activar link
				if (filePO == "1")  
				{
					lnkDownload.visible = true;
				}	
		  				    
			    cwArchivo.unwatch();
			} 			


  			private function onChangeOC(e:Event):void
			{
			    
			    trace(" ____"+  this.name + " -->  onChangeOC.");
			    
			    trace("existe OC=" + existeOC +".");
				if (existeOC == "1")  
				{
					//hide link y disable buttons when don't exists OC
					lnkVerOC.visible = false;   
					btnEnviar.enabled = false;
					btnUpload.enabled = false;
				} 
				else
				{
					//dispach event for view OC
					var prodProEvent:cargarProdPropuestosEvent = new cargarProdPropuestosEvent();
					prodProEvent.metodo = "consultaProductosPropuestos";
					prodProEvent.idPedidoCorp = pedidoCorpId;
					prodProEvent.idPais = codPais;
					prodProEvent.idEmpresa = empresaId;
					prodProEvent.dispatch(); 				
				
				}	
		  				    
			    cwOC.unwatch();
			} 			
			
			
			private function onCreationComplete():void
			{
				trace("____"+  this.name + " -->  onCreationComplete.");
				
			    if (codPais == "CL") {
			    	imagePais.source =  Resources.banderaCL;
			    } else if (codPais == "CO")
			    {
			    	imagePais.source =  Resources.banderaCO;
			    } else if (codPais == "PE")
			    {
			    	imagePais.source =  Resources.banderaPE;
			    } else if (codPais == "AR")
			    {
			    	imagePais.source =  Resources.banderaAR;
			    }
			    
			    nombrePais = XML(paises).pais.(@codIata == codPais).@nombre; 	 				
			}				
			
			
			private function onClickBtnEnviar():void
			{
				trace("____"+  this.name + " -->  onClickBtnEnviar.");
				
				modelo.existeArchivoPO = null;
				
	         	//re-llamada a servicio 	       
				var poEvent:cargarInfoPOEvent = new cargarInfoPOEvent();
				poEvent.idPedidoCorp = pedidoCorpId;
				poEvent.idPais = codPais;
				poEvent.idEmpresa = empresaId;
				poEvent.numeroOC = Number(ordenCompraId);
				poEvent.numeroPO = Number(purchOrderId);
				poEvent.dispatch();
				
				cwPOUpload = ChangeWatcher.watch(ComprasModelLocator.getInstance(),'existeArchivoPO',getPOUploded);  
				
			}


			private function getPOUploded(e:Event):void
			{
				var existe:String = modelo.existeArchivoPO; 
				trace("____"+  this.name + " -->  getPOUploded.   existe=" + existe );	
				
				cwPOUpload.unwatch();								
					
				if (existe == "0")
				{
					alert.warning("Antes de enviar su confirmación, debe adjuntar (upload) la P/O.");
				} 
				else
				{
					alert.success("La P/O  ha sido enviada exitosamente.", listenerAction);
				}
				
			}


			private function listenerAction(closeEvent:CloseEvent):void
			{
				var sesion:Session = new Session();
				var resp:Object = new Object();

				btnEnviar.enabled = false;
		      	btnGuardar.enabled = false;
						      	
		      	//se envia estado a BPM
				resp.estado = EstadosBPM.ENVIO;
				sesion.callbackBPM(resp);				
				
				sesion.endSession();
			}
			
			
			private function onClickBtnGuardar():void
			{
				//only close session	
				alert.success("La P/O ha sido guardada exitosamente.", alertListener);			
			}				
						

			private function alertListener(eventObj:CloseEvent):void 
			{
				
				var sesion:Session = new Session();
				btnGuardar.enabled = false;
		      	btnEnviar.enabled = false;
				sesion.endSession();
			}

		        private function generarReporte(formato:String):void 
		        {
					
				    //call report					
//					var variables:URLVariables = new URLVariables();
//					variables.pNumeroSFP = infoSfpVo.numeroSFP;
//					variables.pPais = nombrePais;
//					variables.pEstado = infoSfpVo.estado; 
//					variables.pFecha = infoSfpVo.fecha_formato;
//					variables.pProveedor = infoSfpVo.proveedorNombre + '  ( ' + infoSfpVo.proveedorId + ' )';
//					variables.pVersion = infoSfpVo.version;
//					variables.pIntMerchant = infoSfpVo.merchantNombre; 
//					variables.pOrdenCompra = ordenCompraId;
//					variables.pPurchaseOrder = purchOrderId + ' ( FP:'+ formaPago + ' )';
//					variables.formato = formato;			            
					
		            var request:URLRequest = new URLRequest();
					request.url = reporteURL + "?formato="+ formato +
								"&pNumeroSFP="+ infoSfpVo.numeroSFP +
								"&pPais="+ nombrePais +
								"&pEstado="+ infoSfpVo.estado + 
								"&pFecha="+ infoSfpVo.fecha_formato +
								"&pProveedor="+ infoSfpVo.proveedorNombre + " ( " + infoSfpVo.proveedorId + " )" +
								"&pVersion="+ infoSfpVo.version +
								"&pIntMerchant="+ infoSfpVo.merchantNombre +	
								"&pOrdenCompra="+ ordenCompraId +
								"&pPurchaseOrder="+ purchOrderId + " ( FP:"+ formaPago + " )";
					request.method = URLRequestMethod.POST;
					//request.data = variables;
		            navigateToURL(request, '_blank');				    					
					
	           }

